So offscreen rendering can be properly debugged.
glDrawArrays (GL_TRIANGLES, op->draw.vao_offset, op->draw.vao_size);
break;
+ case OP_DUMP_FRAMEBUFFER:
+ dump_framebuffer (op->dump.filename, op->dump.width, op->dump.height);
+ break;
+
default:
g_warn_if_reached ();
}
f[3] = c->alpha;
}
+/* Debugging only! */
+void
+ops_dump_framebuffer (RenderOpBuilder *builder,
+ const char *filename,
+ int width,
+ int height)
+{
+ RenderOp op;
+
+ op.op = OP_DUMP_FRAMEBUFFER;
+ op.dump.filename = g_strdup (filename);
+ op.dump.width = width;
+ op.dump.height = height;
+
+ g_array_append_val (builder->render_ops, op);
+}
+
float
ops_get_scale (const RenderOpBuilder *builder)
{
OP_CHANGE_UNBLURRED_OUTSET_SHADOW = 19,
OP_CLEAR = 20,
OP_DRAW = 21,
+ OP_DUMP_FRAMEBUFFER = 22,
};
typedef struct
float progress;
int source2;
} cross_fade;
+ struct {
+ char *filename;
+ int width;
+ int height;
+ } dump;
};
} RenderOp;
} RenderOpBuilder;
+void ops_dump_framebuffer (RenderOpBuilder *builder,
+ const char *filename,
+ int width,
+ int height);
void ops_finish (RenderOpBuilder *builder);
void ops_push_modelview (RenderOpBuilder *builder,